package com.ytjj.qmyx.mall.model.response;

import com.ytjj.qmyx.mall.constants.IsActivityConstant;
import com.ytjj.qmyx.mall.model.*;
import com.ytjj.qmyx.mall.model.esmodel.ProductEsDto;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @Description 首页推荐返回
 * @ClassName HomeRecommendResponse
 * 
 *
 * @Version 1.0
 **/
@Data
public class HomeRecommendResponse {
    /**
     * 主键
     *
     */
    private Integer id;

    /**
     * 商品标识
     *
     */
    private String productNo;

    private PageButton pageButton;

    /**
     * 商品名称
     *
     */
    private String productName;


    /**
     * 商品白图
     *
     */
    private String productImg;

    /**
     * 场景图
     *
     */
    private String sceneImg;

    /**
     * 缩列图
     *
     */
    private String shrinkImg;

    /**
     * 默认价格
     *
     */
    private BigDecimal price;

    /**
     * 描述
     *
     */
    private String descr;

    /**
     * 排序
     *
     */
    private Integer sort;

    /**
     * 原价
     *
     */
    private BigDecimal originalPrice;

    /**
     * 库存总量
     *
     */
    private Integer stock;

    /**
     * 评论总数
     *
     */
    private Integer commentSum;

    /**
     * 好评率
     *
     */
    private Integer goodRatio;

    /**
     * 分类id
     *
     */
    private Integer categoryId;

    /**
     * 店家id
     *
     */
    private Integer bankerId;

    /**
     * 销量
     */
    private Integer volume;

    /**
     * 销量字段
     */
    private String volumeStr;
    /**
     * 货源
     *
     * @mbg.generated
     */
    private String warehouse;

    /**
     * 货源名称
     *
     * @mbg.generated
     */
    private String warehouseName;

    /**
     * 仓库规则如：不退换不到付
     *
     * @mbg.generated
     */
    private String warehouseRule;

    /**
     * sku属性json列表
     *
     */
    private String attributeJson;

    /**
     * 规格列表
     */
    private Map<String,RecommendProductSpecResponse> specMap;

    /**
     * 是否收藏标志
     */
    private Integer isCollect;

    /**
     * 图片列表
     */
    private Map<String, List<ProductImg>> imgMapList;

    /**
     * 是否为活动
     *
     * 备注：该字段用于给前端分辨是否为活动商品
     */
    private Integer isActivity;

    /**
     * 用户ID
     */
    private Integer userId;

    /**
     * 推荐图片列表
     */
    private List<ProductRecommendImgResponse> recommendImgList;

    /**
     * 假用户列表
     */
    List<UsersFake> usersFakeList;

    private String recommendDoc;

    /**
     * 是否存在推荐图或视频 0否 1是
     */
    private Integer recImgFlag;

    private Long similaritySum;

    private String recDescr;


    /**
     * 活动类型
     *
     */
    private String activityType;

    /**
     * 商品id
     *
     */
    private Integer productId;


    /**
     * 活动标识：积分/红包/抵扣券
     *
     */
    private BigDecimal activityMax;

    /**
     * 活动标识：积分/红包/抵扣券
     *
     */
    private BigDecimal activityMin;

    /**
     * 活动额外参数
     *
     */
    private String extra;

    /**
     * 点击量
     *
     */
    private Integer pv;

    /**
     * 评论总数
     *
     */
    private Integer comment;

    /**
     * 好评率
     *
     */
    private BigDecimal commentGood;

    /**
     * 栏目id
     *
     */
    private Integer columnId;

    /**
     * 状态1上架2下架3预售
     *
     */
    private Byte status;

    /**
     * 成本
     *
     */
    private BigDecimal cost;

    /**
     * 假用户集合
     */
    private List<UsersFake> fakeUserList;

    /**
     * 现金劵图片
     */
    private String cashCouponImg;

    /**
     * 区分50和100现金劵 类型
     *
     * @param productActivity
     */
    private String cashType;

    /**
     * 拍卖
     */
    private List<AuctionResponse> auctionList;

    /**
     * 现价
     */
    private BigDecimal curPrice;

    /**
     * 规格id
     */
    private Integer specId;

    /**
     * 提示语
     */
    private String advertTips;

    /**
     * 是否隐藏
     */
    private Integer isHide;

    /**
     * 是否广告
     */
    private Integer isAdvert;

    /**
     * 为getRecommendProductList推荐商品列表显示商品类型，新增的字段
     * 1 ： 普通商品， 2 ： 活动商品，默认为1
     */
    private Integer productType = 1;

    public HomeRecommendResponse() {
    }

    public HomeRecommendResponse(ProductActivity productActivity){
        BeanUtils.copyProperties(productActivity,this);
        this.isActivity = IsActivityConstant.YES;
    }

    public HomeRecommendResponse(Product product){
        BeanUtils.copyProperties(product,this);
        this.isActivity = IsActivityConstant.NO;
    }

    public HomeRecommendResponse(ProductEsDto item) {
        BeanUtils.copyProperties(item,this);
        this.isActivity = IsActivityConstant.NO;
    }
}
